package com.stefanini.pe.bbva.bp.in.bo.iface;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.stefanini.pe.bbva.bp.in.bo.datasource.DetallePorContratos;
import com.stefanini.pe.bbva.bp.in.to.DetalleRebalanceoTO;
import com.stefanini.pe.bbva.bp.in.to.PosicionContrato;
import com.stefanini.pe.bbva.bp.in.to.PosicionDetalle;
import com.stefanini.pe.bbva.bp.in.to.Rebalanceo;
import com.stefanini.pe.bbva.bp.in.to.TablaGenerica;

public interface RebalanceoBOIface {
	public List<Rebalanceo> listarHistoricosRebalanceo(Rebalanceo oRebalanceo) throws Exception;
	public List<Rebalanceo> listarHistoricosRebalanceoNC(Rebalanceo oRebalanceo);
	public List<HashMap> listarArchivosRebalanceo(Rebalanceo oRebalanceo);
	public List<HashMap> listarArchivosRebalanceoNC(Rebalanceo oRebalanceo);
	public void listarPosicionContrato(String codCliente,PosicionContrato listContratoTotal,List listContratoProductos);
	public void listarPosicionContratoSeleccionados(PosicionContrato objContratoTotal,List listContratoProductos,List listContratosSeleccionados);
	public void listarPosicionContratoDetalleSeleccionados(PosicionDetalle objContratoTotal,List listContratoProductos,List listContratosSeleccionados);
	public List<DetallePorContratos> obtenerListaReporteContratosSeleccionados(List listaContratoProductosS,PosicionContrato rebalanceoContratoTotalRebalanceado);
	public List<DetallePorContratos> obtenerListaReporteContratosDetalleSeleccionados(List listaContratoProductosS,PosicionDetalle rebalanceoContratoTotalRebalanceado);
	public void listarPosicionDetalle(String codCliente,PosicionDetalle listContratoTotal,List listContratoProductos);
	public List<HashMap> cambiarEstadoRebalanceo(String codCliente, String idRebalanceo, String estado,
			String observaciones) throws Exception;
	public HashMap validarRebalanceo(String codNoCliente) throws Exception;
	public List<TablaGenerica> listarRebalanceoAnual(String anio, String codUsuAsesor);	
	public List<Rebalanceo> listarResultadoRebalanceo(String codUsuAsesor);
	public String clonarRebalanceo(String idrebalanceo);
	/*
	 * PESTANA DE GESTION DE REBALANCEO DE RESULTADOS POR PERIODO
	 * */
	public List<Rebalanceo> listarResultadoPorPeriodo(String codUsuAsesor);
	public void listarPosicionContratoRebalanceado(String codCliente,PosicionContrato listContratoTotal,List listContratoProductos);
	public void listarPosicionDetalleRebalanceado(String codCliente,PosicionDetalle listContratoTotal,List listContratoProductos);
	public List listarPosicionContratoRebalanceadoIndicador(String codCliente,PosicionContrato objContratoTotal,List listAux);
	public List listarPosicionDetalleRebalanceadoIndicador(String codCliente,PosicionDetalle objContratoTotal,List listAux);
	public Map<String,List<Map<String,Object>>> consultarDetalleRebalanceo(String idRebalanceo);
	
	public Map<String,ArrayList<DetalleRebalanceoTO>> obtenerDetalle(String idRebalanceo) throws Exception;
	public String guardarDetalleRebalanceo(List<DetalleRebalanceoTO> getListaDetalleRebalanceoBonos,
			List<DetalleRebalanceoTO> listaDetalleRebalanceoOperaciones,
			List<DetalleRebalanceoTO> listaDetalleRebalanceoAcciones,
			List<DetalleRebalanceoTO> listaDetalleRebalanceoDepositosEstructurados,
			List<DetalleRebalanceoTO> listaDetalleRebalanceoOpcion, String idRebalanceo,
			boolean initListDataBono, boolean initListDataOper, boolean initListDataAcciones,
			boolean initListDataDepEstruct, boolean initListDataOpciones);
	public String listarIdsCodContrato(String idrebalanceocontrato);//abarrios
	
	public List<Map> listarAutocompleteNemotecnicoBono(String inNemoTecnico) throws Exception;
	public List<Map> listarAutocompleteNemotecnicoAcciones(String inNemoTecnico) throws Exception;
}

